# 编译器名称和编译选项
CXX = g++
CXXFLAGS = -Wall -g

# 目标文件和依赖关系
TARGET = myprogram
SRCS = main.cpp myclass.cpp
OBJS = $(SRCS:.cpp=.o)

# 可执行文件和调试文件
EXECUTABLE = $(TARGET)
DEBUG_FILE = $(TARGET).debug

# 默认目标
all: $(EXECUTABLE) $(DEBUG_FILE)

# 生成可执行文件
$(EXECUTABLE): $(OBJS)
	$(CXX) $(CXXFLAGS) -o $@ $^

# 生成调试文件
$(DEBUG_FILE): $(OBJS)
	$(CXX) $(CXXFLAGS) -o $@ $^

# 生成目标文件
%.o: %.cpp
	$(CXX) $(CXXFLAGS) -c $< -o $@

# 清除生成的文件
clean:
	rm -f $(OBJS) $(EXECUTABLE) $(DEBUG_FILE)
